package com.example.userlogin.controller;


import com.example.userlogin.entity.Goods;
import com.example.userlogin.entity.Supplier;
import com.example.userlogin.service.GoodsService;
import com.example.userlogin.service.SupplierService;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Controller
@RequestMapping("/supplier")
//专门处理供应商控制器
public class SupplierController {
    //    实现与前端交互的数据请求方法
//    1.进入模块首页的时候需要对数据里的所有商品数据进行查询，返回列表给前端页面进行展示
    @Autowired
    SupplierService supplierService;

    @Autowired
    HttpServletRequest request;

    //    1.展示数据库里已有的商品列表给前端
    @RequestMapping("/supplierList")
    public String SupplierMain(Model model){
//        调用service方法查询到商品列表结果
        List<Supplier> supplierList = supplierService.findAll();
        Object name = request.getSession().getAttribute("name");
//        将查询结果用model绑定
        model.addAttribute("data",supplierList);
        model.addAttribute("name",name);
        System.out.println(supplierList);
//        返回视图
        return "supplier/supplierList";
    }

//    加载供应商添加页面，并传递用户名
    @RequestMapping("/supplierAdd")
    public String supplierAdd(Model model){
        Object name = request.getSession().getAttribute("name");
        model.addAttribute("username",name);
        return "supplier/supplierAdd";
    }

//    负责处理表单提交请求，将数据持久化到数据库，成功后重定向到供应商列表页面
    @RequestMapping("/suppplierAddProcess")
    public String supplierAddProcess(@RequestParam String name,@RequestParam String address,
            @RequestParam String contact_person,@RequestParam String telephone){
        //      组装一个goods实体对象
        Supplier supplier = new Supplier();
        supplier.setName(name);
        supplier.setAddress(address);
        supplier.setContact_person(contact_person);
        supplier.setTelephone(telephone);
        //        调用service的add方法给数据库
        if (supplierService.add(supplier)==1){
            //        如果返回ok，那么就进入商品管理首页
            return "redirect:/supplier/supplierList";
        }else {
            return "redirect:/supplier/supplierList";
        }
    }

    @RequestMapping("/supplierUpdate")
    public String update(@RequestParam String id,Model model){
//        首先基于id查询出来该id记录里的所有数据信息
        Supplier supplier=new Supplier();
        supplier.setId(Integer.valueOf(id));
//        调用service方法查询出来该记录的数据信息
        Supplier supplierDB = supplierService.findOne(supplier);
//        2.将这些数据信息返回给视图
        model.addAttribute("data",supplierDB);
        Object name = request.getSession().getAttribute("name");
        model.addAttribute("name",name);
//        3.返回视图文件
        return "supplier/supplierUpdate";
    }

}
